#pragma once

template<typename D, typename W>
class WeightedItem
{
public:
	D data;
	W weight;

	WeightedItem();
	WeightedItem(D &d, W w);
	WeightedItem(WeightedItem& e);
	virtual ~WeightedItem();
};

template<typename D, typename W>
WeightedItem<D, W>::WeightedItem()
: weight(0)
{
}

template<typename D, typename W>
WeightedItem<D, W>::WeightedItem(D &n, W w)
: data(n),
weight(w)
{

}

template<typename D, typename W>
WeightedItem<D, W>::WeightedItem(WeightedItem<D, W>& e)
: data(e.data),
weight(e.weight)
{
}

template<typename D, typename W>
WeightedItem<D, W>::~WeightedItem()
{

}